package com.devMode.FacadeMode;

/**
 * 外观模式
 * 提供一个接口，用以访问子系统中的多个接口，从而让子系统更加容易使用
 */
public class FacadeMode {
    public static void main(String[] args) {
        Facade facade = new Facade();
        facade.watchMovie("007");
    }
}

/**
 * 观看电影需要操作很多电器，使用外观模式可以一键看电影功能
 */
class SubSystem{
    public void turnOnTv(){
        System.out.println("turnOnTv....");
    }

    public void setCD(String cd){
        System.out.println("setCD( " + cd + ") .....");
    }

    public void startWatching(){
        System.out.println("startWatching()");
    }
}

class Facade{
    private SubSystem subSystem = new SubSystem();

    public void watchMovie(String movie){
        subSystem.turnOnTv();
        subSystem.setCD(movie);
        subSystem.startWatching();
    }
}
